#include <linux/fs.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/of_address.h>
#include <linux/leds.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/gpio_keys.h>
#include "../consumer_driver/gpio_comsumer_driver.h"
#if 0
struct virt_gpio_consumer_data
{
	const char * con_id;
};
#endif
static struct virt_gpio_consumer_data data_info =
{
	.con_id = "virt_gpio_gate",
};
 
static void virt_clk_gate_consumer_release(struct device *dev)
{

}
static struct platform_device virt_clk_gate_consumer_device = {
	.name = "virt_gpio_consumer",
	.id = -1,
	.dev = {
		.platform_data = &data_info,
		.release = virt_clk_gate_consumer_release,
	}
};



static int __init virt_clk_gate_consumer_init(void)
{
	int ret = 0;

	printk("%s:%d\n", __FUNCTION__, __LINE__);
	ret = platform_device_register(&virt_clk_gate_consumer_device);

	return ret;
}

static void __exit virt_clk_gate_consumer_exit(void)
{
    printk("%s:%d\n", __FUNCTION__, __LINE__);
    platform_device_unregister(&virt_clk_gate_consumer_device);
}



module_init(virt_clk_gate_consumer_init);
module_exit(virt_clk_gate_consumer_exit);
MODULE_DESCRIPTION("virt gpio clk gate platform device");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("jerry_chg");
